The transmission control protocol (TCP) is a connection-oriented protocol. In TCP, to ensure reachability of data, a reception node transmits an acknowledgment (ACK) to a transmission node when receiving a segment.
Moreover, in TCP, a window is adopted, and the transmission node is allowed to transmit TCP segments continuously without receiving an ACK until the number of TCP segments reaches a window size. That is, the window size is the number of segments that are allowed to be transmitted from the time when one segment is transmitted until when an ACK for the segment is received. The time from when one segment is transmitted until when an ACK for the segment is received corresponds to the round trip time (RTT).
If the transmission node transmits the predetermined number of segments suddenly, this may lead to congestion on a network. Therefore, in TCP, as a mechanism of congestion control, mechanisms called slow start and congestion avoidance mode are adopted. Slow start is a method by which gradual transmission of segments is started, and, when an ACK is returned, the number of segments to be transmitted (a window size) is increased.
Furthermore, after the window size is increased to a value greater than or equal to a value called a slow start threshold value, the window size is enlarged as the congestion avoidance mode. Therefore, in these congestion control, at first the window size is small and gradually increases. Moreover, if packet loss occurs or an ACK is not returned within a time-out period, in TCP, the window size temporarily defaults to 2 which is an initial value, and the number of segments to be transmitted is reduced. Thereafter, the window size is gradually increased again in slow start. Moreover, though not timed out, when slight congestion is detected, the window size is reduced to a given size. In this case, the window size is enlarged every time an ACK is received in accordance with slow start if the window size is smaller than the slow start threshold value or in accordance with the congestion avoidance mode if the window size is greater than the slow start threshold value.
FIG. 1 is a diagram depicting an example of a change in a window size of communication using TCP. In FIG. 1, an example of a change in a window size when the RTT is 100 ms and the loss rate is 0.01% is depicted. In FIG. 1, a solid line indicates the size of a congestion window (in FIG. 1, “cwnd”) and a dashed line indicates a slow start threshold value (in FIG. 1, “ssthresh”). The congestion window is a window used in slow start or the congestion avoidance mode. In FIG. 1, the occurrence of packet loss is indicated at vertices of the solid graph, and a case in which the congestion window size is reduced to 2 due to the occurrence of packet loss is depicted.
As described above, in TCP, when the window size is reduced to 2 due to the occurrence of packet loss, it takes time for the window size to return to a predetermined window size because of slow start. The communication throughput depends on the window size, that is, the number of segments that are allowed to be transmitted per RTT. Therefore, when TCP communication is performed over a line with a long RTT, if packet loss occurs, there is a high possibility that the communication throughput is decreased.
One of the lines with a long RTT is a wide area network (WAN). When communication is performed via the WAN, a device called a WAN optimization device is sometimes used. The WAN optimization device performs communication by, for example, replacing normal TCP used by a terminal device with TCP with a higher line utilization ratio to suppress a decrease in an average throughput of TCP. Hereinafter, TCP with a higher line utilization ratio is referred to as optimized TCP. The WAN optimization devices are disposed in such a way as to sandwich a WAN line between a server and a terminal device, for example. The WAN optimization device temporarily terminates a TCP session between the WAN optimization device and the terminal device or the server, replaces the TCP session with a session of optimized TCP, and performs transmission to another WAN optimization device which the WAN optimization device faces with the WAN placed therebetween. The other WAN optimization device which the WAN optimization device faces returns optimized TCP to normal TCP used between the WAN optimization device and the terminal or the server.
High-speed communication protocols used between the WAN optimization devices vary among vendors. For example, there are a protocol obtained by improving the user datagram protocol (UDP) and adding retransmission control and a congestion control function thereto and a protocol obtained by improving existing TCP to make the congestion control function thereof more efficient. As a UDP based high-speed communication protocol, there is a protocol called UDP based data transfer (UDT), for example. As a protocol obtained by improving TCP, that is, as optimized TCP, there are algorithms such as CUBIC and Scalable.
There are the following two types of congestion window control algorithms of these optimized communication protocols:
(1) an algorithm that enlarges a congestion window in accordance with the number of ACKs; and
(2) an algorithm that enlarges a congestion window in accordance with the length of time that has elapsed after the detection of congestion.
Examples of type (1) include Scalable, and examples of type (2) include CUBIC.
Transmitting a large amount of data without leaving an interval greater than or equal to a predetermined packet interval between transmissions is referred to as bulk transfer. Here, an example of a predetermined packet interval is a retransmission time out (RTO) which is a waiting time before the start of retransmission in TCP. On the other hand, transmitting a packet group generated from one piece of data with an interval greater than or equal to a predetermined interval left between transmissions is referred to as burst transmission. The data from which the packet group to be transmitted by burst transmission is generated is referred to as burst data. An example of an application that performs burst transmission is remote desktop.
The high-speed communication protocol is optimized mainly for the purpose of speeding up bulk transfer. For example, optimized TCP used between the WAN optimization devices is generally configured in such a way that an average throughput becomes maximum when bulk transfer is performed.
Japanese Laid-open Patent Publication No. 2007-194762 and Japanese Laid-open Patent Publication No. 2002-290459 are examples of related art.